import {Body, Get, Post, Query} from "@nestjs/common";
import {BaseServiceCriterion} from "@/modules/_/base/base.service";
import {QueryFilter} from "@/typing/queryFilter";

export class BaseController<T> {

    constructor(private baseServer: BaseServiceCriterion<T>) {

    }

    // 增加数据 ====================>
    @Post("/createItem")
    async createItem(@Body() obj: T) {
        return this.baseServer.create(obj);
    }

    // 删除数据 ====================>
    @Post("/removeItemById")
    async removeItem(@Body() obj: T) {
        return this.baseServer.remove(obj);
    }

    // 更改数据 ====================>
    @Post("/updateItem")
    async updateItem(@Body("id") id: number, @Body() obj: T) {
        return this.baseServer.update(id, obj);
    }

    // 查询数据 ====================>
    @Get("/getById")
    async getById(@Query("id") id: number) {
        return this.baseServer.queryById(id);
    }

    @Get("/queryList")
    async queryList(@Query() filter: QueryFilter) {
        return this.baseServer.queryList(filter);
    }

}